Les informations données ici peuvent ne pas être correctes pour votre distribution. En effet, certaines distributions utilisent une structure légèrement différente. Les informations données ici sont conformes à la norme de hiérarchie de systèmes de fichiers version 2.0 (``FHS'' en anglais). Vous pouvez consulter ce document pour une description exhaustive du système de fichiers de Linux.
Il n'existe pas de norme d'organisation du système de fichiers, mais
un standard est à peu près suivi par les différentes distributions de
Linux. L'organisation traditionnelle du répertoire racine est décrite
dans le tableau suivant (voir tableau 3.1, page
).
Le répertoire de base / s'appelle : répertoire racine (root) par analogie avec la racine d'un arbre représentant le système de fichiers. Il n'est pas standard d'ajouter des répertoires au niveau de la racine.
Ce système de fichiers peut résider sur différentes partitions, différents supports physiques ou sur d'autres machines sur le réseau. Ce découpage est complètement transparent pour les utilisateurs du système de fichiers. Les différentes parties peuvent être connectées au démarrage du système ou à la demande, en cours d'utilisation.
Exemples :
/lib/modules contient les modules additionnels du noyau. Ces modules sont des composants logiciels du noyau, mais ne sont pas chargés immédiatement pendant l'amorçage. Ils peuvent en revanche être chargés et déchargés dynamiquement, lorsque le système est en fonctionnement. Il est fortement recommandé que ce répertoire soit placé dans le système de fichiers racine.
Ce répertoire contient les fichiers de configuration du système. On trouve les sous-répertoires suivants :
Le répertoire /etc/opt/ contient les fichiers de configuration des applications.
Le répertoire /usr contient de nombreux sous-répertoires. On retrouve presque la même organisation que sous la racine, mais le contenu est destiné aux utilisateurs plus qu'au système lui-même.
La structure de /usr est la suivante :
Xwindow est l'environnement graphique d'Unix. Il est très flexible et configurable et possède des fonctionnalités rarement vues dans d'autres environnements. On retrouve, dans ce répertoire, une hiérarchie de fichiers ressemblant à celle de la racine, mais dédiée à l'environnement Xwindow.
/usr/local doit contenir les outils installés en dehors du contexte de la distribution. On retrouve une hiérarchie complète semblable à /usr.
/usr/bin/ contient la plupart des commandes des utilisateurs.
/usr/sbin/ contient les commandes systèmes non nécessaires à l'amorçage. Ces commandes ne sont normalement utilisées que par l'administrateur système.
/usr/lib/ contient les bibliothèques partagées de tous les programmes de /usr/bin/ et /usr/sbin/ et les bibliothèques statiques pour la création de programmes.
/usr/include/ contient les fichiers d'en-têtes du système pour le compilateur C/C++. Les fichiers de ce répertoire sont utilisés pour réaliser des programmes dans les langages de programmation C et C++.
/usr/X11R6/ contient X11R6 et ses applications. Ce répertoire contient des sous-répertoires bin/, lib/ et include/, où se trouvent les exécutables de XWindow, les bibliothèques et les fichiers d'en-têtes pour créer des programmes pour XWindow en C et C++.
/usr/src/ contient les fichiers sources du noyau et des applications de la distribution. Normalement, ce répertoire ne doit contenir que le code source des applications dépendantes de la distribution que vous utilisez. Il est vivement recommandé de conserver les sources du noyau de Linux3.3 sur son disque, afin de pouvoir changer la configuration du système à tout moment.
/usr/local/ contient les programmes d'extension du système indépendants de la distribution. ``local'' ne signifie pas ici que les programmes qui se trouvent dans ce répertoire ne peuvent pas être partagés sur le réseau, mais plutôt que ce sont des extensions du système qu'on ne trouve donc que localement sur un site donné. Ce sont donc les extensions qui ne font pas partie de la distribution de Linux utilisée, et qui doivent être conservées lors des mises à jour ultérieures de cette distribution. Ce répertoire contient les sous-répertoires bin, lib, include et src, qui ont la même signification que les répertoires du même nom de /usr/.
Répertoire contenant toutes les données variables du système. Ce répertoire contient les données variables qui ne pouvaient pas être placées dans le répertoire /usr/, puisque celui-ci est normalement accessible en lecture seule.
/var/opt/ contient les données variables des applications.
/var/log/ contient les fichiers de trace de fonctionnement du système. Une grande partie du travail d'administration consiste à suivre les enregistrements afin de détecter les mauvais fonctionnements. Le programme logrotate permet de conserver un historique des fichiers. Il existe des outils de gestion des fichiers de trace pour permettre, entre autres, la détection des intrusions sur le système.
/var/spool/ contient les données en attente de traitement. Les travaux d'impression en cours, les mails et les fax en attente d'émission, les travaux programmés en attente d'exécution sont tous stockés dans ce répertoire. Le répertoire spool contient des sous-répertoires de gestion des spoolers d'impression (lpd), de courriers (mail), de forums (news), etc. Ces sous-répertoires peuvent contenir, momentanément, des fichiers de taille importante.
/var/locks/ contient les verrous sur les ressources système. Certaines ressources ne peuvent être utilisées que par une seule application (par exemple, un modem). Les applications qui utilisent de telles ressources le signalent en créant un fichier de verrou dans ce répertoire.
/var/cache/ contient les données de résultats intermédiaires des applications. Les applications qui doivent stocker des résultats intermédiaires doivent les placer dans ce répertoire.
./catman contient les fichiers d'aide mis en forme. Ce répertoire contient les pages de manuel mises en forme pour un accès plus rapide lors d'une deuxième utilisation.
./lib quelques fichiers de configuration ./lock les fichiers de verrous des applications ./run les fichiers contenant les "pid" des processus du système
Répertoire contenant les applications. C'est dans ce répertoire que les applications qui ne font pas réellement partie du système doivent être installées. Les applications graphiques devraient être installées dans ce répertoire. C'est en particulier le cas des gestionnaires de bureau. Les seules applications graphiques considérées comme faisant partie du système sont les applications de X11, qui sont donc stockées dans /usr/X11R6/. Il est recommandé que ce répertoire soit placé sur un système de fichiers en lecture seule, et que les applications utilisent le répertoire /var/opt/ pour travailler.
Le répertoire /home contient les répertoires des utilisateurs disposant d'un compte sur la machine. Chaque utilisateur possède généralement son propre répertoire, mais il est possible de créer des structures de groupes de travail en organisant les sous-répertoires.
Il est bon de placer ce répertoire dans un système de fichiers indépendant de ceux utilisés par le système, afin d'éviter que sa saturation ne perturbe le fonctionnement du système complet.
Répertoire contenant le répertoire personnel de l'administrateur. Il est donc recommandé que le répertoire personnel de l'administrateur soit placé en dehors de /home/ pour éviter qu'un problème sur le système de fichiers des utilisateurs ne l'empêche de travailler.
Répertoire réservé au montage des systèmes de fichiers non-permanents (CD-ROM, disquettes, etc.). Ce répertoire peut contenir plusieurs sous-répertoires pour chaque périphérique amovible, afin de permettre d'en monter plusieurs simultanément. Notez qu'il est assez courant de disposer de liens symboliques dans la racine référençant les principaux systèmes de fichiers, afin d'en simplifier l'accès. Par exemple, il est courant d'avoir un répertoire /floppy/ référençant le lecteur de disquette et un répertoire /cdrom/ référençant le lecteur de CD-ROM.
Nous avons vu que la hiérarchie des fichiers de Linux était mono-tête, c'est à dire qu'il partait d'un racine unique, contrairement à Windows qui présente une racine par système de fichier (une pour chaque partition du disque dur, pour la disquette, le CD-ROM, les lecteurs réseaux... ).
Tout fichier accessible par un système Unix est inséré dans une grande arborescence, la hiérarchie des fichiers, commençant à la racine /. Les fichiers de cette arborescence peuvent résider sur différents périphériques et ce, de façon transparente pour l'utilisateur.
Ainsi, pour pouvoir exploiter plusieurs systèmes de fichier différents, nous devons rattacher ces derniers à l'arborescence des fichiers du système. Cette opération s'appelle le montage de systèmes de fichiers. Elle permet de rattacher la racine d'un système de fichier à un emplacement de l'arborescence des fichiers du système, nommé ``point de montage''.
La commande mount permet d'attacher un système de fichiers trouvé sur un périphérique quelconque à l'arborescence des fichiers du système. A l'inverse umount le détachera à nouveau. La syntaxe de cette commande est la suivante :
Où :
, décrit le format utilisé par
le système de fichier à monter. Voir la liste des principaux types
(voir tableau 3.2, page
). Si l'option ``-t'' n'est mentionnée, ou si le
type ``auto'' est précisé, la recherche de type est effectuée sur le
superblock (dans l'ordre : minix, ext, ext2, xia, iso9660 sont
supportés). Si cette recherche échoue, et si
/proc/filesystems existe, alors tous les types de systèmes de
fichiers listés seront essayés successivement.
|
est le nom du fichier contenant le système de
fichier à monter. Il s'agit géneralement de fichiers du répertoire
/dev/. Par exemple :
est le repertoire de la hiérarchie des
fichiers où sera monté le système de fichiers. Le contenu précédent
du répertoire (s'il n'était pas vide), ainsi que son propriétaire et
ses modes d'accès initiaux deviennent invisibles tant que le nouveau
système de fichiers reste monté. Le chemin d'accès du répertoire
représente alors la racine du système de fichiers se trouvant sur le
périphérique.
Nous avons vu comment utiliser monter des systèmes de fichiers à l'aide de la commande mount mais il est évident qu'il serait fastidieux de recourir systématiquement à cette commande pour monter les systèmes de fichiers utilisés couramment.
Le fichier /etc/fstab, contient des lignes décrivant les systèmes de fichiers habituellement montés, leurs répertoires, et leurs options. Ce fichier est utilisé dans trois buts :
pour monter le CD-ROM).
, n'importe quel utilisateur peut
monter le système de fichiers correspondant.
Ainsi, avec une ligne :
dans le fichier fstab, n'importe quel utilisateur peut monter
le système iso9660 se trouvant sur son CDROM en utilisant la commande
.